Im nächsten Abschnitt möchte ich mich jetzt damit beschäftigen, wie man auf so einem Medium
nun Dateien wirklich speichert. Dateien benötigen ja oft mehr als einen Block auf der Festplatte.
Und die Frage ist natürlich, welche Blöcke nennt man jetzt konkret für die Speicherung einer
Datei. Und da gibt es eine ganze Reihe von verschiedenen Möglichkeiten und vor allem
auch verschiedene Möglichkeiten, wie man diese Blöcke verwaltet, wo man sich aufschreibt,
welche Blöcke das sind. Die erste Möglichkeit ist eine kontinuierliche Speicherung, das heißt,
die Datei wird in Blöcken mit aufsteigender Blocknummer gespeichert. Die Nummer des ersten
Blocks und die Anzahl der Folgeblöcke muss dann auch irgendwo gespeichert werden. Das könnte man
zum Beispiel dann im Dateiverzeichnis, im Direktory machen, dass man zum Dateinamen einfach die Nummer
des ersten Blocks mitspeichert und die Länge der Datei speichert. Sehr viel mehr Information
brauchen wir eigentlich nicht. Der große Vorteil davon ist natürlich, gerade bei einer Harddisk,
dass ich auf alle Blöcke mit minimaler Positionierzeit des Schwenkarms zugreifen kann.
Ich muss letztlich ja nur einmal den Schwenkarm auf den richtigen Zylinder positionieren und solange
die Blöcke alle in einer Spur oder auch mehreren Spuren auf verschiedenen Plattenoberflächen mit
gleichem Radius, also in einem Zylinder, Platz haben, kann ich also einmal positionieren und kann
dann im Raum einer Umdrehung eigentlich alle Blöcke lesen oder schreiben. Man hat damit auch
einen relativ schnellen direkten Zugriff auf eine bestimmte Dateiposition. Man kann sich ja ausrechnen,
welcher Block das dann ist und weiß dann eben welchen man lesen muss. Solche Systeme oder solche
Dateisysteme gibt es in der Praxis durchaus, gerade bei Systemen mit Echtzeitanforderungen,
wo ich Vorhersagen machen möchte, wie lange es eben dauert, um einen Block zu lesen oder zu schreiben.
Weil das ja dann für die Echtzeitbedingungen des Systems unter Umständen ein wichtiger Parameter
ist und in dem Moment, wo das eine vorherbesagbare Zeit ist, kann ich das eben in meine Zeitabschätzungen
im System sehr präzise mit aufnehmen. Das Problem bei dieser Art von Dateisystem ist allerdings,
dass ich ja diesen freien Platz auf der Festplatte, also eine Menge von aufeinander
folgen und freien Datenblöcken erstmal finden muss. Ich muss ihn vor allem haben. Und in dem
Moment, wo eine Platte länger in Benutzung ist und ich habe dann immer wieder mal Dateien angelegt,
habe kleine Dateien angelegt, die dann natürlich hintereinander möglicherweise auf der Platte
liegen, dann lösche ich zwischendrin mal so eine kleine Datei raus, dann habe ich dann ein kleines
Loch drin. Das reicht aber natürlich nicht für eine große Datei. Damit habe ich im Prinzip genau
das gleiche Fragmentierungsproblem, das wir auch vom Kapitel der Speicherverwaltung schon kennen.
Ich habe externen Verschnitt. Ich habe eventuell irgendwann eine genügende Zahl von Blöcken auf
der Platte frei, aber die sind nicht am Stück und damit habe ich nicht genügend Platz für eine
Datei, die ich da anlegen möchte. Dann ist auch das Problem, dass bei neuen Dateien die Größe
im Voraus oft gar nicht bekannt ist und wenn ich sie dann erweitern möchte, also ich muss beim
Anlegen natürlich die Größe angeben, und wenn das dann nicht ausreicht, wenn ich möchte die Datei
erweitern, dann kann das ein Problem geben, falls im Anschluss an diese Datei bereits eine
andere Datei liegt. Und dann muss ich die Datei umgruppieren in einen größeren Bereich.
Es gibt Variationen von dieser Art der Datei-Speicherung und das am weitesten
verbreitete und heute auch wirklich sehr gebräuchliche ist das unterteilen einer
Datei in Folgen von Blöcken. Diese Blöcke liegen dann schon am Stück auf der Platte,
aber es können mehrere solche Blockfolgen zu einer Datei gehören und so eine Folge von Blöcken
nennt man auch Chunks oder Extents. Diese Blockfolgen werden also kontinuierlich
gespeichert, haben also dann alle Vorteile von kontinuierlicher Speicherung, aber wenn ich die
Datei verlängern möchte, dann kann ich halt einfach einen weiteren Chunk hinzunehmen,
der dann auch wieder kontinuierlich, aber an anderer Stelle auf der Platte gespeichert ist.
Da habe ich dann natürlich Positionierzeiten dazwischen, ist also so ein bisschen Kompromiss
zwischen alles liegt am Stück und es liegt genügend am Stück, um einfach die Vorteile von schnellem
Zugriff zumindest schon mal zu haben. Pro Datei muss natürlich jeweils der erste Block und die
Länge von jedem einzelnen Chunk gespeichert werden. Also ich habe mehr Verwaltungsinformation.
Das Problem hierbei ist eventuell, dass ich innerhalb so einer Folge dann wieder verschnitt habe,
Presenters
Zugänglich über
Offener Zugang
Dauer
00:22:05 Min
Aufnahmedatum
2021-01-26
Hochgeladen am
2021-01-26 11:49:55
Sprache
de-DE